export type Status = 'success' | 'error' | 'warning' | 'info';
export interface PageInfo {
    items: any[];
    total: number;
    page: number;
    pageSize: number;
    pages: number;
}

export class Responses {
    // 成功响应通常包含以下字段：
    // ```json
    // {
    //     "status": "success", // 响应状态
    //     "data": {            // 返回的具体数据
    //         "id": 1,
    //         "name": "通义"
    //     },
    //     "message": "操作成功" // 可选字段，描述操作结果
    // }
    // ```

    static success(data: any, message: string = '操作成功',status: Status = 'success') {
        return {
            status,
            data,
            message
        }
    }
    //     错误响应通常包含以下字段：
    //    ```json
    //    {
    //        "status": "error",    // 响应状态
    //        "code": 400,          // HTTP 状态码或自定义错误代码
    //        "message": "参数无效", // 错误描述
    //        "errors": [           // 可选字段，详细错误信息
    //            {
    //                "field": "email",
    //                "message": "邮箱格式不正确"
    //            }
    //        ]
    //    }
    //    ```
    static error(errors: any, message: string = '操作失败',status: Status = 'error') {
        return {
            status,
            errors,
            message
        }
    }
    // 如果返回的数据是一个集合（如列表），通常需要支持分页。分页响应的数据结构如下：
    // ```json
    // {
    //     "status": "success",
    //     "data": {
    //         "items": [        // 当前页的数据
    //             {"id": 1, "name": "通义"},
    //             {"id": 2, "name": "阿里云"}
    //         ],
    //         "total": 100,     // 总记录数
    //         "page": 1,        // 当前页码
    //         "pageSize": 10,   // 每页大小
    //         "pages": 10       // 总页数
    //     }
    // }
    // ```
    static page(data: PageInfo, message: string = '操作成功',status: Status = 'success') {
        return {
            status,
            data,
            message
        }
    }
}
